package hot100.h0912;

import java.util.Comparator;
import java.util.PriorityQueue;

/**
  * @description 数组中最小的k个数
  * @author 不知名帅哥
  * @date 2024/9/12 20:52
  * @version 1.0
*/
public class KNumInArray {
    public static void main(String[] args) {

    }
    public int[] smallestK(int[] arr, int k) {
        //使用最大堆
        PriorityQueue<Integer> queue = new PriorityQueue<>((o1, o2) -> o2-o1);
        for (int i = 0; i < arr.length; i++) {
            queue.add(arr[i]);
            if (queue.size()>k){
                queue.poll();
            }
        }
        int[] res = new int[k];
        for (int i = k-1; i >= 0; i--) {
            res[i]=queue.poll();
        }
        return res;
    }
}
